#ifndef NEWCAMERA_HPP
#define NEWCAMERA_HPP
#include "ViewPoint.hpp"
class ViewTransform;

class Camera
{
   public:
      Camera(ViewTransform* aTransform);

      int handle(int event);

      void UpdateView();
      virtual void Draw();

      void SetFocusDistance(float aDistance);
      float GetFocustDistance() const { return mFocusDistance; }
      ViewPoint   mViewPoint;

   private:

      float mFocusDistance;   
      
      float PanScale() 
      { 
         float scale = mFocusDistance / 50.0f;
         if (scale < .1f) scale = .03f;
         return scale;
      }
      
      
      bool mRotating;
      bool mPanning;
      bool mZooming;
      bool mHasMoved;
      int mDownX;
      int mDownY;
      ViewTransform* mView;
};
#endif